Autonomic service routing using observed resource requirement for self-optimization

ABSTRACT

A service request routing system and method includes a model table configured to store resource models. A monitor is coupled to the model table and programmed both to model resource consumption in a service providing infrastructure, and also to store the modeled resource consumption in the model table. A router is coupled to the model table, and the router is programmed to route each service request to a corresponding service instance disposed in an associated service host having a service providing infrastructure. The associated service host includes a grid host in a grid computing system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Divisional of U.S. application Ser. No.10/370,837, filed Feb. 21, 2003, entitled “AUTONOMIC SERVICE ROUTINGUSING OBSERVED RESOURCE REQUIREMENT FOR SELF-OPTIMIZATION,” which isincorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of distributed computing,including Web services and grid services, and more particularly to therouting of a service request to a service instance within a serviceproviding infrastructure.

2. Description of the Related Art

Web services represent the leading edge of distributed computing and areviewed as the foundation for developing a truly universal model forsupporting the rapid development of component-based applications overthe World Wide Web. Web services are known in the art to include a stackof emerging standards that describe a service-oriented, component-basedapplication architecture. Specifically, Web services are looselycoupled, reusable software components that semantically encapsulatediscrete functionality and are distributed and programmaticallyaccessible over standard Internet protocols.

Conceptually, Web services represent a model in which discrete taskswithin processes are distributed widely throughout a value net. Notably,many industry experts consider the service-oriented Web servicesinitiative to be the next evolutionary phase of the Internet. Typically,Web services can be defined by an interface such as the Web servicesdefinition language (WSDL), and can be implemented according to theinterface, though the implementation details matter little so long asthe implementation conforms to the Web services interface. Once a Webservice has been implemented according to a corresponding interface, theimplementation can be registered with a Web services registry, such asUniversal Description, Discover and Integration (UDDI), as is well knownin the art. Upon registration, the Web service can be accessed by aservice requester through the use of any supporting messaging protocol,including for example, the simple object access protocol (SOAP).

In a service-oriented application environment supporting Web services,locating reliable services and integrating those reliable servicesdynamically in realtime to meet the objectives of an application hasproven problematic. While registries, directories and discoveryprotocols provide a base structure for implementing service detectionand service-to-service interconnection logic, registries, directories,and discovery protocols alone are not suitable for distributedinteroperability. Rather, a more structured, formalized mechanism can benecessary to facilitate the distribution of Web services in theformation of a unified application.

Notably, the physiology of a grid mechanism through the Open GridServices Architecture (OGSA) can provide protocols both in discovery andalso in binding of Web services, hereinafter referred to as “gridservices”, across distributed systems in a manner which would otherwisenot be possible through the exclusive use of registries, directories anddiscovery protocols. As described both in Ian Foster, Carl Kesselman,and Steven Tuecke, The Anatomy of the Grid, Intl J. SupercomputerApplications (2001), and also in Ian Foster, Carl Kesselman, Jeffrey M.Nick and Steven Tuecke, The Physiology of the Grid, Globus.org (Jun. 22,2002), a grid mechanism can provide distributed computing infrastructurethrough which grid services instances can be created, named anddiscovered by requesting clients.

Grid services extend mere Web services by providing enhanced resourcesharing and scheduling support, support for long-lived state commonlyrequired by sophisticated distributed applications, as well as supportfor inter-enterprise collaborations. Moreover, while Web services aloneaddress discovery and invocation of persistent services, grid servicessupport transient service instances which can be created and destroyeddynamically. Notable benefits of using grid services can include areduced cost of ownership of information technology due to the moreefficient utilization of computing resources, and an improvement in theease of integrating various computing components. Thus, the gridmechanism, and in particular, a grid mechanism which conforms to theOGSA, can implement a service-oriented architecture through which abasis for distributed system integration can be provided-even acrossorganizational domains.

Within the computing grid, a service providing infrastructure canprovide processing resources for hosting the execution of distributedservices such as grid services. The service providing infrastructure caninclude a set of resources, including server computing devices, storagesystems, including direct attached storage, network attached storage andstorage area networks, processing and communications bandwidth, and thelike. Individual transactions processed within the service providinginfrastructure can consume a different mix of these resources.

It is known in the grid services context to route requests to particularservice instances hosted within a specified service providinginfrastructure according to the queue length of the particular serviceinstance. The logical selection of a particular service instance basedupon a queue lengths represents an attempt to minimize response time byplacing requests for service processing in the shortest possible queue.Similarly, the processing capabilities of the hosting service providinginfrastructure further can be taken into account in selecting aparticular service instance.

More particularly, a particular service instance able to processrequests at twice the rate of other service instances can have equalprocessing throughput as the other service instances where theparticular service instance has a queue which is twice as long as thequeue of the other service instances. Still, the queue length selectionstrategy can be overly coarse-grained and does not match the resourcerequirements of a requested service to the available resources of theservice providing infrastructure. Specifically, in the conventionalcircumstance, a mere scalar benchmark can be associated with the wholeof a service providing infrastructure. Consequently, the granularcomponents of the service providing infrastructure are never taken intoaccount.

BRIEF SUMMARY OF THE INVENTION

The present invention is a service request routing system and method. Inaccordance with the present invention, individual service requests canbe routed to service instances within selected service hosts havingresource components most compatible with the resource requirements andconsumption patterns of the service requests. In this way, unlike theconventional circumstance in which a mere scalar benchmark can beassociated with the whole of a service providing infrastructure, thegranular components of the service providing infrastructure of the gridhost can be taken into account when routing service requests to serviceinstances.

A service request routing system can include a model table configured tostore resource models. A monitor can be coupled to the model table andprogrammed both to model resource consumption in a service providinginfrastructure, and also to store the modeled resource consumption inthe model table. A router also can be coupled to the model table.Specifically, the router can be programmed to route each service requestto a corresponding service instance disposed in an associated servicehost having a service providing infrastructure. In a preferred aspect ofthe invention, the associated service host can include a grid host in agrid computing system.

Importantly, the routing can be based upon a matching of resourcecomponents of the service providing infrastructure to a resource modelfor the service request. Additionally, in the preferred aspect, eachresource model in the model table can be a time series model. Finally,the resource components can form a resource vector corresponding to theservice providing infrastructure. In this regard, each resourcecomponent in the resource vector can include a resource selected fromthe group consisting of a server type, bandwidth, and storage systemtype. Other resources can include more granular computing resources, forinstance cache size or CPU speed. Furthermore, a comparator further canbe included which can be programmed to compare a scalar cost of eachresource vector to determine a relative cost between individual resourcevectors.

A method for routing service requests to service instances in a serviceproviding infrastructure can include receiving a service request andcomputing resource vectors for at least two service hosts. Each servicehost can have a corresponding service providing infrastructure. Aresource model can be retrieved for the service request. Accordingly,the retrieved resource model can be matched to each of the resourcevectors to identify a best-fit resource vector. Finally, the servicerequest can be routed to a selected service host associated with theidentified best-fit resource vector.

In a preferred aspect of the invention, for each of the resource vectorsat least two scalar resource components can be computed. In this regard,the scalar components can include server type, server performance,server capacity, processing bandwidth, communications bandwidth, storagetype, storage capacity and storage performance. Also, a scalar cost canbe computed for each of the resource vectors. In this way, the scalarcosts can be compared to determine a more cost-effective resourcevector.

To produce the resource models, processing of received service requestscan be monitored and individual resource components can be identified inthe service hosts which are consumed during the processing.Consequently, the resource models can be produced for the servicerequests based upon the identified individual resource components in theservice hosts. Notably, the producing step can include the step ofcomputing a time series model for each of the service requests basedupon the identified individual resource components.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

There are shown in the drawings embodiments which are presentlypreferred, it being understood, however, that the invention is notlimited to the precise arrangements and instrumentalities shown,wherein:

FIG. 1 is a block illustration of a services grid configured for routingservice requests to service hosts within a service providinginfrastructure having resources which best match the resourcerequirements of the requested service in accordance with the presentinvention; and,

FIG. 2 is a flow chart illustrating a process for routing servicerequests to service hosts within a service providing infrastructurehaving resources which best match the resource requirements of therequested service in the grid of FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is a method and system for routing servicerequests to service instances in selected service providinginfrastructure. Specifically, the granular resource requirements of aservice can be matched to the granular resources within a resource setassociated with a service providing infrastructure hosting an instanceof the requested service. Based upon a best-fit matching of resourcerequirements of the requested service to resource availability of a hostservice providing infrastructure, the request for service processing canbe assigned to a service instance hosted within the matched serviceproviding infrastructure. In this way, the mere routing of servicerequests based upon a course-grained, scalar evaluation of a serviceproviding infrastructure can be avoided.

FIG. 1 is a block illustration of a services grid configured for routingservice requests to service instances hosted within a service providinginfrastructure having resources which best match the resourcerequirements of the requested service in accordance with the presentinvention. As will be apparent to the skilled artisan, the services gridcan be a Web services grid configured with one or more grid hosts 120communicatively linked to one another in a grid fashion across acomputer communications network 110, for instance the Internet.Individual requesting clients 190 can request access to Web servicesfrom one or more of the grid hosts 120. Specifically, as is well-knownin the art, SOAP encoded messages can be exchanged between requestingclients 190 and the grid hosts 120. The messages can include requests todiscover the location of particular Web services and well as responsesto the requests in which the network location of the requested Webservices are revealed.

The grid hosts 120 can be disposed within a server computing device in acentralized fashion, or across multiple server computing devices in adistributed fashion. In either case, a Web server 140 can be providedwhich can be configured to respond to network requests for content, suchas markup documents. As will be understood by one of ordinary skill inthe art, the Web server 140 can be configured to handle hypertexttransfer protocol (HTTP) messages and to distribute markup such ashypertext markup language (HTML) formatted documents, extensible markuplanguage (XML) formatted documents, and the like.

The Web server 140 can be communicatively linked in the grid host 120 toan application server 150. Application servers are well-known in the artand typically are configured to process machine code, whether in aninterpreted manner, or in a native format. Conventional applicationservers process server-side logic such as scripts and servlets. In anyevent, the application server 150 can be linked to a Web services engine160 configured to instantiate individual Web services in one or more Webservices containers in the grid hosts 120. The Web services instances,in turn, can access the resources 130 of the grid host 120. It will berecognized by the skilled artisan that the collection of resources 130can be considered the foundation of a service providing infrastructure.To that end, the resources 130 can include server computing devices andprocesses, storage systems, and communications and computing bandwidth.

Importantly, a grid service mechanism 170 can be disposed in each gridhost 120. The grid service mechanism 170 can implement a grid servicesinterface such as that defined by OGSA and specified, for example,according to the Globus Project, Globus Toolkit Futures: An Open GridServices Architecture, Globus Tutorial, Argonne National Laboratory(Jan. 29, 2002). As is well-known in the art, an OGSA compliant gridservices interface can include the following interfaces and behaviors:

1. Web service creation (Factory)

2. Global naming (Grid Service Handle) and references (Grid ServiceReference)

3. Lifetime management

4. Registration and discovery

5. Authorization

6. Notification

7. Concurrency

8. Manageability

In that regard, the grid services mechanism 170 can include a factoryinterface able to clone instances of selected Web services into new orpre-existing application containers using a “Factory Create Service”.

Significantly, the grid services mechanism 170 can instantiate cloneinstances of a requested Web service across one or more remote gridhosts 120. In particular, consistent with the intent of gridarchitectures, where processing loads experienced by individual remotegrid hosts 120 exceed acceptable or pre-specified capacities, others ofthe individual remote grid hosts 120 can be selected to host newinstances of selected Web services. In any event, responsive toreceiving service requests for processing in a specified Web service,regardless of any particular instance of the specified Web service, arouting process 200B can select a specific service instance within agrid host 120 to handle the service request.

Significantly, in selecting the specific service instance, the resources130 associated with the service providing infrastructure of the gridhost 120 of the specific service instance can be considered. Moreparticularly, the resource availability of the grid host 120 can bematched to the resource requirements of the service request. Toundertake the resource matching, for each transaction processed in agrid host 120, a monitor process 200A can monitor the utilization ofresources 130 in the grid host 120 so as to establish a resourcerequirements and consumption model for the transaction. The establishedmodel for each transaction can be stored in a model table 200C.

Subsequently, the router can establish a resource vector for each gridhost 120 under consideration during the routing process. The resourcevector can include scalar values for the individual resources 130forming the foundation of the service providing infrastructure of thegrid host 120. Examples can include available processing bandwidth,available communications bandwidth, storage type, capacity andresponsiveness, server type, etc. Each resource vector established forthe service providing infrastructure of a grid host can be stored in avector table 200D. Additionally, a cost element can be computed for thevector so that individual vectors in the vector table 200D can becompared to one another in a scalar fashion.

When a service request is received in the routing process 200B, therouting process 200B can identify the transaction type associated withthe service request. Based upon the transaction type, the model for thetransaction type can be retrieved from the model table 200C and matchedto the resource vectors in the vector table 200D which are associatedwith grid hosts 120 having either available service instances able tohandle the received service request, or the ability to instantiateservice instances able to handle the received service request. In thisregard, a best-fit algorithm can be applied to select the appropriategrid host 120 to handle the request.

FIG. 2 is a flow chart illustrating a process for routing servicerequests to service hosts within a service providing infrastructurehaving resources which best match the resource requirements of therequested service in the grid of FIG. 1. Beginning in block 210, a gridservice request can be received. In block 220, the service type can beidentified. In block 230, the resources of available grid hostsconfigured to host service instances of the requested service type canbe queried to establish respective resource vectors. Additionally, indecision block 230, it can be determined if a model has been computedfor the service type.

If in decision block 240 a model cannot be located for the identifiedservice type, in block 280, the grid host configured to host serviceinstances of the requested service type which demonstrates the highestavailability in terms of queue length or scalar performance can beselected. Otherwise, in block 250, the resource model for the servicetype can be retrieved and in block 260, a best-fit analysis can beapplied to the model and the resource vectors of the set of grid hostsable to host service instances of the requested service type. Based uponthe best-fit analysis of block 260, in block 270 the service request canbe routed to the service instance within the specified grid host.

The present invention can be realized in hardware, software, or acombination of hardware and software. An implementation of the methodand system of the present invention can be realized in a centralizedfashion in one computer system, or in a distributed fashion wheredifferent elements are spread across several interconnected computersystems. Any kind of computer system, or other apparatus adapted forcarrying out the methods described herein, is suited to perform thefunctions described herein.

A typical combination of hardware and software could be a generalpurpose computer system with a computer program that, when being loadedand executed; controls the computer system such that it carries out themethods described herein. The present invention can also be embedded ina computer program product, which comprises all the features enablingthe implementation of the methods described herein, and which, whenloaded in a computer system is able to carry out these methods.

Computer program or application in the present context means anyexpression, in any language, code or notation, of a set of instructionsintended to cause a system having an information processing capabilityto perform a particular function either directly or after either or bothof the following a) conversion to another language, code or notation; b)reproduction in a different material form. Significantly, this inventioncan be embodied in other specific forms without departing from thespirit or essential attributes thereof, and accordingly, referenceshould be had to the following claims, rather than to the foregoingspecification, as indicating the scope of the invention.

1. A service request routing system comprising: a model table configured to store resource models; a monitor coupled to said model table and programmed both to model resource consumption in a service providing infrastructure, and also to store said modeled resource consumption in said model table; and, a router coupled to said model table and programmed to route each service request to a corresponding service instance disposed in an associated service host having a service providing infrastructure based upon a matching of resource components of said service providing infrastructure to a resource model for said service request, wherein said monitor processes said received service requests identifies individual resource components in service hosts which are consumed during said processing, and produces resource models for said service requests based upon said identified individual resource components in said service hosts by computing a time series model for each of said service requests based upon said identified individual resource components.
 2. The service request routing system of claim 1, wherein said associated service host comprises a grid host in a grid computing system.
 3. (canceled)
 4. The service request routing system of claim 1, wherein said resource components form a resource vector corresponding to said service providing infrastructure.
 5. The service request routing system of claim 4, wherein each resource component in said resource vector comprises a resource selected from the group consisting of a server type, bandwidth, and storage system type.
 6. The service request routing system of claim 4, further comprising a comparator programmed to compare a scalar cost of each resource vector to determine a relative cost between individual resource vectors. 7-16. (canceled) 